package w83a.w83aOperacionesPaso.w83aDocumentacion;

import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83a.w83aBeans.W83aDocumentacionBean;
import w83a.w83aUtilidades.W83aUtilidadesComunes;
import w83a.w83aUtilidadesComunes.W83aClsConstantes;
import w83a.w83aUtilidadesComunes.W83aClsTrazas;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83aAccesoAplicacionOPAction.java.
 *
 * @author Deusto Sistemas
 */
public class W83aTablaDocumentacionOPAction extends Q70ActionPasoOP{

	
	/**
	 * processOP
	 * @param contexto a
	 * @param mapping a
	 * @param errores a
	 * @param form a
	 * @param request a
	 * @param response a
	 * @throws Exception e
	 */	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
			
			W83aDocumentacionBean documentacionBean = (W83aDocumentacionBean)contexto.get("w83aDocumentacionBean");
			documentacionBean.setIdioma((String)contexto.get("w83aCgaIdioma"));
			//Guardamos la accion en el contexto
			if(StringUtils.isNotEmpty(request.getParameter("action"))){
				contexto.set("action",request.getParameter("action"));
			}
			
			
			
			if(StringUtils.isNotEmpty(request.getParameter("tipoBusqueda"))){
				documentacionBean.setTipoBusqueda(request.getParameter("tipoBusqueda"));
			}
			W83aClsTrazas.trazaDebug(null,"[ W83aTablaDocumentacionOPAction.processOP] tipoBusqueda="+documentacionBean.getTipoBusqueda());
			
			
			if(documentacionBean.getTipoBusqueda().equals(W83aClsConstantes.BUSQUEDA_ELECTORAL_ACTA)){
				//TIPO DE BÚSQUEDA: ACTA
				documentacionBean.setNumActaTerritorio(request.getParameter("nActaTerritorio_numerico"));
				documentacionBean.setNumActaAnyo(request.getParameter("nActaAnyo_numerico"));
				documentacionBean.setNumActaNumero(request.getParameter("nActaNumero_numerico"));
				documentacionBean.setNumPreavisoTerritorio("");
				documentacionBean.setNumPreavisoAnyo("");
				documentacionBean.setNumPreavisoNumero("");
				documentacionBean.setHistorico("");
				documentacionBean.setFechaEleccion("");
				documentacionBean.getCentroTrabajo().setCodCentroTrabajo("");

			}else if(documentacionBean.getTipoBusqueda().equals(W83aClsConstantes.BUSQUEDA_ELECTORAL_PREVISO)){
				//TIPO DE BÚSQUEDA PREAVISO			
				documentacionBean.setNumPreavisoTerritorio(request.getParameter("nPreavisoTerritorio_numerico"));
				documentacionBean.setNumPreavisoAnyo(request.getParameter("nPreavisoAnyo_numerico"));
				documentacionBean.setNumPreavisoNumero(request.getParameter("nPreavisoNumero_numerico"));
				documentacionBean.setNumActaTerritorio(request.getParameter(""));
				documentacionBean.setNumActaAnyo(request.getParameter(""));
				documentacionBean.setNumActaNumero(request.getParameter(""));
				documentacionBean.setHistorico("");
				documentacionBean.setFechaEleccion("");
				documentacionBean.getCentroTrabajo().setCodCentroTrabajo("");
			}else if(documentacionBean.getTipoBusqueda().equals(W83aClsConstantes.BUSQUEDA_ELECTORAL_CENTRO)){
				//TIPO DE BÚSQUEDA CENTRO		
				documentacionBean.setHistorico(request.getParameter("historicoBuscar"));
				documentacionBean.setFechaEleccion(request.getParameter("fechaEleccion"));
				documentacionBean.getCentroTrabajo().setCodCentroTrabajo(request.getParameter("codCentroBuscar"));
				documentacionBean.setNumPreavisoTerritorio(request.getParameter(""));
				documentacionBean.setNumPreavisoAnyo(request.getParameter(""));
				documentacionBean.setNumPreavisoNumero(request.getParameter(""));
				documentacionBean.setNumActaTerritorio(request.getParameter(""));
				documentacionBean.setNumActaAnyo(request.getParameter(""));
				documentacionBean.setNumActaNumero(request.getParameter(""));
			}
			
			
			
			contexto.set("w83aDocumentacionBean",documentacionBean);	
			
			if((StringUtils.isEmpty((String)contexto.get("modoPantalla")))){
				if("true".equals(request.getParameter(W83aClsConstantes.RIA_SEARCH))){
					documentacionBean = (W83aDocumentacionBean)W83aUtilidadesComunes.inicializarPaginador(request, documentacionBean);
					contexto.set("w83aDocumentacionBean",documentacionBean);
				}else{
					documentacionBean = (W83aDocumentacionBean)W83aUtilidadesComunes.inicializarPaginador(request, documentacionBean);
					contexto.set("w83aDocumentacionBean",documentacionBean);	
				}
			}else if("sord".equals(request.getParameter("action"))){
				documentacionBean = (W83aDocumentacionBean)W83aUtilidadesComunes.inicializarPaginador(request, documentacionBean);			
				contexto.set("w83aDocumentacionBean",documentacionBean);
			}else if(StringUtils.isEmpty(((W83aDocumentacionBean)contexto.get("w83aDocumentacionBean")).getSort())){
				documentacionBean = (W83aDocumentacionBean)W83aUtilidadesComunes.inicializarPaginador(request, documentacionBean);			
				contexto.set("w83aDocumentacionBean",documentacionBean);
			}else if(W83aClsConstantes.MODO_BUSQUEDA_CONBUSQ_INICIAL.equals(contexto.get("modoPantalla"))){
				documentacionBean = (W83aDocumentacionBean)W83aUtilidadesComunes.inicializarPaginador(request, documentacionBean);			
				contexto.set("w83aDocumentacionBean",documentacionBean);
			}else {
				documentacionBean = (W83aDocumentacionBean)W83aUtilidadesComunes.inicializarPaginador(request, documentacionBean);			
				contexto.set("w83aDocumentacionBean",documentacionBean);
			}
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String action = (String)contexto.get("action");
		W83aDocumentacionBean documentacionBean = (W83aDocumentacionBean)contexto.get("w83aDocumentacionBean");
		
		if(((HashMap)contexto.get("w83aListaDocumentacion")).isEmpty()){	
			HashMap documentacion=new HashMap();
			documentacion.put("datos", new ArrayList());
			documentacion.put("documentos", new ArrayList());
			contexto.set("w83aListaDocumentacion", documentacion);
		}
		
		if(null==documentacionBean.getCentroTrabajo().getCodCentroTrabajo()){
			return mapping.findForward("ok");	
		}
		
		if(documentacionBean.isCambioPagina()&&!"sord".equals(request.getParameter("action"))){
			return mapping.findForward("outOP");
		}else  if (("find").equals(action) || ("sord").equals(action)){
			//Si vengo de una pantalla anterior tengo que mirar si he realizado una búsqueda anterior
			if(StringUtils.isEmpty((String)contexto.get("modoPantalla")) ||W83aClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
				contexto.set("modoPantalla",W83aClsConstantes.MODO_BUSQUEDA);
				return mapping.findForward("find");
			}else{
				contexto.set("modoPantalla",W83aClsConstantes.MODO_BUSQUEDA);
				if("true".equals((String)contexto.get("busqRealizada"))){
					return mapping.findForward("find");					
				}
			}
		}

		return mapping.findForward("ok");
	}

}
